#ifndef OneParamFunctions_HEADER_H 
#define OneParamFunctions_HEADER_H


#include "../SQLEvalVisitor.h"
// #include "SQLEvalVisitorUtils.h"
#include "../../ast/SQLExpr.h"
#include "../../ast/expr/SQLMethodInvokeExpr.h"
#include "../../parser/ParserException.h"
#include "Function.h"

//import java.math.BigDecimal;
//import java.math.BigInteger;


//import com.alibaba.druid.util.Utils;

class OneParamFunctions : virtual public SQLFunction {
	public:
		static OneParamFunctions *instance();
		virtual ~OneParamFunctions();
		virtual Object_ptr eval(SQLEvalVisitor *visitor, SQLMethodInvokeExpr *x);

		static string_ptr  soundex(string_ptr  str);

		static string_ptr  clean(string_ptr  str);

	private:
		static char getMappingCode(string_ptr  str, int index);

		static char map(char ch);


};
#endif

